#pragma once

#include "model/ClientNode.h"
#include "protocol/transport.pb.h"
#include "protocol/routeinfo.pb.h"
#include "base/Uri.h"
 
#include "base/Define.h"
 

namespace zeroplus::mq::admin
{
    class RouteInfoDownloader
    {
    private:
        std::shared_ptr<ClientNode> client_;

    public:
        RouteInfoDownloader(std::string uri);
        ~RouteInfoDownloader();
        routeinfo::ClusterInfo QueryBrokerClusterInfo();
        transport::QueryBrokerClusterInfoResponse SendQueryBrokerClusterInfoRequest();
        void PrintClusterInfo(const routeinfo::ClusterInfo &clusterInfo);
    };
}
